This invention relates generally to the design of integrated circuits and the design thereof, and more particularly to a memory architecture and synthesis method using the memory architecture.
The use of integrated circuits is widespread and pervasive. Integrated circuits have a variety of uses, and are found in a variety of devices. Such integrated circuits often require temporary storage of information. Temporary storage of information allows integrated circuits to not only respond to immediate conditions, but to do so in view of past activities. The temporary storage of information is often accomplished using memory cells, and many integrated circuits include a large number of memory cells. In order to store information a particular memory cell must be specified for storage of the information, and the information must be provided to the memory cell. Thus, storage of information, or data, in a memory element, or cell, generally requires two separate signals. One signal, a selection signal, selects a particular memory element for storage of information, and another signal, a data signal, provides the information for storage in the particular memory element.
Further, the selection signal and the data signal used in storing data in a memory cell require a high degree of synchronization. Absent such synchronization, the particular memory cell may receive data intended for another memory cell, or the data intended for storage in the particular memory cell may, in fact, be stored in some other memory cell. The necessary degree of synchronization of the selection signal and the data signal is determined by a time period, a synchronization window, in which the selection signal and the data signal must both be valid with respect to each other. In general the synchronization window, that is the permissible variation in the timing of the selection and data signals, is determined by the clock period of a clock signal used within the integrated circuit, the clock skew between any two points within the integrated circuit, any signal skew in providing the signals, and any applicable circuit clement set-up and hold times. When the clock period is relatively long, the various skews and set-up and hold times are somewhat irrelevant. As the clock period decreases, however, the synchronization requirement becomes more exacting and variations introduced, for example, by data signal and clock signal travel paths, may introduce skews of importance.
For many modern integrated circuits, which operate at high clock speeds, the clock period is sufficiently short that clock skew and signal skew may affect synchronization of the selection and data signals. Accordingly, great care must be taken in the placement of memory elements and the routing of data and clock signals to ensure sufficient synchronization of signals. Absent great care in the placement of circuitry for generating selection signals and placement of circuitry for generating data signals, operation of the integrated circuit as a whole may be faulty.
In addition, layout space in modern integrated circuits is often at a premium as integrated circuits are performing ever increasing tasks and have ever increasing capabilities without commensurate increases in chip size. Thus, placement of circuitry associated with memory elements must also be done with a view to minimizing layout space of the integrated circuit as a whole, which can be a difficult task due to the numerous elements which make up the integrated circuit.
Preferably, placement of circuitry associated with memory elements would be performed automatically by tools, such as place and route tools. Place and route tools automatically arrange and interconnect logic cells on a chip, based on the size of the logic cells, the footprint of the chip, timing requirements provided by the designers, and other criteria. Place and route tools, however, do have limitations. For example, place and route tools often are unable to tightly pack components, and place and route tools often require that signals upon which timing criteria are based be proximately tied to a clock signal. The circuitry generating the selection signal and the data signal, however, must be tightly packed to meet timing requirements, and the signals, particularly the data signal, are often not proximately tied to a clock signal. Thus, place and route tools are often unable to accurately determine placement requirements of circuitry associated with generating selection and data signals as entities separate from the memory element.
Accordingly, laborious and exacting xe2x80x9chard-placement,xe2x80x9d i.e., explicit selection of location of memory elements and associated circuitry within the integrated circuit, is required to be performed by the designer. In other words, the designer hand places the memory element, the circuit elements generating the selection signal, and the circuit elements generating the data signal with respect to each other in a tightly packed manner. Together these tightly packed elements form a specially handled block. FIG. 1 illustrates a block diagram of a specially handled block, with a specially handled block 10 responsive to a write enable signal 11, a clock signal 12, an address bus 13, and a write data signal 14.
The specially handled block 10 includes circuitry corresponding to that of FIG. 2. FIG. 2 illustrates circuitry for providing temporary storage of information, i.e., a memory architecture. A memory cell 37 is used to store information. More than one memory cell may be present, but for clarity only one memory cell is shown. The memory cell is selected using a word line signal 52, and receives data via a data signal 58. The word line signal is generated using a write enable signal, a clock signal, and an address bus. The write enable signal indicates that a write operation, opposed to a read operation, is to occur. The clock signal provides a timing reference for circuit operation. The address bus provides information as to which particular memory cell is subject to the operation. As the write is to occur when both the clock signal and the write enable signal are low, the write enable signal and the clock signal are provided to a two input NOR gate 31. The output of the NOR gate 31 supplies a first input to an AND gate 35. A second input to the AND gate 35 is an address selected signal that is produced by an address decoder 33. The address decoder responds to input of address information from the address bus. Thus, the second input to the NOR gate indicates selection of the memory cell for an operation. The AND gate 35 produces the word line signal for the memory cell. The second input into the memory cell 37 is the data signal. The data signal is formed by a buffer 39. The buffer 39 receives a write data signal as its input. In FIG. 2, the storing of the data signal in the memory cell 37 is accomplished using the buffer 39. The selection of the memory cell 37 is accomplished by the NOR gate 31, AND gate 35 and the address decoder 33.
The use of hand-placed specially handled blocks, such as the specially handled block of FIG. 1, presents several problems, however. Place and route tools must still connect the specially handled blocks to other components, and such connections may result in chip area wastage as the place and route tool is unable to locate the hand-placed specially handled block and the connections to the specially handled block in an optimum manner. More importantly, as chip complexity increases so does the number of specially handled blocks. Large numbers of specially handled blocks simply cannot be manually placed in an economic or efficient manner. Even more importantly, specially handled blocks are, by their very nature, adapted for use with a specific process technology, such as a 0.25 micron or 0.18 micron technology. The delay calculations, space requirements,. power requirements, and other considerations for components making up the specially handled block are determined with respect to a specific technology, and those considerations may not hold for other technologies. Thus, the specially handled blocks are not technology independent. Accordingly, whenever chip technology changes the designs of the specially handled blocks must also change.
The present invention provides a memory architecture with three separate units, a word line block, a data block and at least one memory cell. The word line block is responsive to a write enable signal, a clock signal and an address bus. The word line block forms a selection signal which is applied to at least one memory cell for selecting the at least one memory cell for data storage. The word line block from the combination of the write enable signal, the clock signal and an address signal, derived from an address decoder coupled to the address bus, forms the selection signal.
In one embodiment the word line block comprises means for decoding an address signal from an address bus, means for determining when the write operation is asserted, and means for forming a word line signal. The means for forming word line signal acts in response to a write signal generated by the means for determining when a write operation is asserted and an address signal generated by the means for decoding an address signal. In addition, in one embodiment the word line block further comprises a means for gating the word line signal. Further, in one embodiment the data block comprises means for forming a data signal and additional means for determining when the write operation is asserted, and means for gating the data signal.
Circuit designers often specify elements from libraries containing cells specifying physical and electrical characteristics of such cells. Accordingly, in one embodiment the memory architecture comprises a memory cell mapped into a representative memory cell specifying physical and electrical characteristics of the cell, a word line block mapped into a representative word line block cell, and a data block mapped into a representative data block cell.
The present invention also provides a process using a synthesis method for designing a memory architecture described above. In such a process, a circuit designer designs a digital logic circuit that stores and retrieves data, essentially a memory architecture. A hardware description language (HDL) is used to design the circuit operation. Generated from the HDL is a list of logic components and interconnections between the logic components. The list of components are mapped to cells which include the word line block, the data block, and at least one memory cell with each cell specifying actual electronic circuit elements. A place and route tool automatically places and routes the cells to form the memory architecture.
Many of the attendant features of this invention will be more readily appreciated as the same becomes better understood by reference to the following detailed description and considered in connection with the accompanying drawings in which like reference symbols designate like parts throughout.